/**
 * Created by hama on 2016/6/12.
 */
var express = require('express');
var fs = require('fs');
var router = express.Router();


//中间件来判断用户是否登录
function sign(req, res, next){
    if(req.cookies.petname){
        next()
    }
    else{
        if(req.xhr){
            function send(code,message){
                res.status(200).json({code,message});
            }
            // req.xhr通过请求头中的X-Requested-With判断是
            // 否是Ajax请求，Ajax请求默认都带有这个请求头
            send(res, 'signin error', '请重新登录...')
        }
        else{
            res.redirect('/signin')
        }
    }
}
router.get('/answer/:question',sign,function(req,res){
    res.render('answer',{
        user: req.cookies.petname,
        question:req.params.question
    });
})
//可以进行回答,如果你点击了当前的问题，问题的文件名会被记录下来
//回答的话要知道回答的哪条提问,当前登录的用户,都在cookie当中.
router.post('/answer',function(req,res){
    var petname = req.cookies.petname;
    function send(code,message){
        res.status(200).json({code,message});
    }
    if(!petname){
        send('signin error','请重新登录');
        return;
    }
    var filename = `questions/${req.body.question}.txt`;
    req.body.petname = petname
    req.body.ip = req.ip
    req.body.time = new Date()
    //读取这个文件，将body里面的内容写入进去
    fs.readFile(filename,function(err,data){
        if(err){
            send('file error','系统错误');
        }else{
            var question = JSON.parse(data);
            if(!question.answers) question.answers = []
            question.answers.push(req.body)
            //再把写好的内容变成JSON存入
            fs.writeFile(filename, JSON.stringify(question), err => {
                if(err){
                    send('file error', '抱歉，系统错误...')
                }
                else{
                    send('success', '回答提交成功！')
                }
            })
        }
    })
})

//第一个改动，将所有的页面的请求设置路由,并可以给动态数据
//首页的数据渲染，不再通过JS文件了，直接通过后端模板将数据渲染到页面当中去.
//第二个改动，如没有登录的时候，没权限访问的页面都将通过中间件的机制来解决
//动态的判断用户是否登录，如果登录了，则直接显示登录后的用户名，不再让用户登录
module.exports = router